import 'dart:convert';
import 'dart:io';

import 'package:get_mac_address/get_mac_address.dart';

var products = {
  "items": [
    {
      "name": "算法第四版",
      "auth": "Robert Sedgewick & Kevin Wayne",
      "pice": "99",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "Android源码设计模式",
      "auth": "何红辉，关爱民",
      "pice": "99",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "Android进阶之光",
      "auth": "刘望舒",
      "pice": "89",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "Android开发艺术探索",
      "auth": "任玉刚",
      "pice": "79",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "深入理解java虚拟机",
      "auth": "周志明",
      "pice": "79",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "Android进阶解密",
      "auth": "刘望舒",
      "pice": "99",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "android软件安全权威指南",
      "auth": "丰强生",
      "pice": "95",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "算法第四版",
      "auth": "Robert Sedgewick & Kevin Wayne",
      "pice": "99",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "算法第四版",
      "auth": "Robert Sedgewick & Kevin Wayne",
      "pice": "99",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "算法第四版",
      "auth": "Robert Sedgewick & Kevin Wayne",
      "pice": "99",
      "imageUrl": "asset/images/01.png"
    },
    {
      "name": "算法第四版",
      "auth": "Robert Sedgewick & Kevin Wayne",
      "pice": "99",
      "imageUrl": "asset/images/01.png"
    },
  ]
};

var news = {
  "items": [
    {
      "title": "任正非：不需要美国 华为已经能自己解决供应问题",
      "autho": "新京报",
      "content":
          "日前，华为心声社区发布了一篇任正非与德国媒体的圆桌纪要。在这场圆桌上，任正非与德国媒体谈到了华为目前的处境、5G布局，以及孟晚舟近况等。"
    },
    {
      "title": "港姐嫁富商住400平别墅 自己种菜下厨照顾3女儿",
      "autho": "易起看家",
      "content":
          "他来了！他带着豪宅和精彩故事来了！”周一搬砖的苦闷日子，家居君为大家准备了轻松的豪宅之旅，希望能给你的社畜生活带来一丝快乐。"
    },
    {
      "title": "2019第十届互联网牛耳人人盛典开幕在即",
      "autho": "网易传媒",
      "content":
          "12月26日，2019第十届互联网牛耳人人盛典将在北京M空间隆重开幕。本届盛典以“创行智远”为主题，将在记录2019年中国互联网发展历程的同时，为过去一年中能代表互联网行业发展的伟大企业与优秀创业者献上桂冠。"
    },
    {
      "title": "2019第十届互联网牛耳人人盛典开幕在即",
      "autho": "网易传媒",
      "content":
          "12月26日，2019第十届互联网牛耳人人盛典将在北京M空间隆重开幕。本届盛典以“创行智远”为主题，将在记录2019年中国互联网发展历程的同时，为过去一年中能代表互联网行业发展的伟大企业与优秀创业者献上桂冠。"
    },
    {
      "title": "2019第十届互联网牛耳人人盛典开幕在即",
      "autho": "网易传媒",
      "content":
          "12月26日，2019第十届互联网牛耳人人盛典将在北京M空间隆重开幕。本届盛典以“创行智远”为主题，将在记录2019年中国互联网发展历程的同时，为过去一年中能代表互联网行业发展的伟大企业与优秀创业者献上桂冠。"
    },
    {
      "title": "2019第十届互联网牛耳人人盛典开幕在即",
      "autho": "网易传媒",
      "content":
          "12月26日，2019第十届互联网牛耳人人盛典将在北京M空间隆重开幕。本届盛典以“创行智远”为主题，将在记录2019年中国互联网发展历程的同时，为过去一年中能代表互联网行业发展的伟大企业与优秀创业者献上桂冠。"
    },
    {
      "title": "2019第十届互联网牛耳人人盛典开幕在即",
      "autho": "网易传媒",
      "content":
          "12月26日，2019第十届互联网牛耳人人盛典将在北京M空间隆重开幕。本届盛典以“创行智远”为主题，将在记录2019年中国互联网发展历程的同时，为过去一年中能代表互联网行业发展的伟大企业与优秀创业者献上桂冠。"
    },
    {
      "title": "2019第十届互联网牛耳人人盛典开幕在即",
      "autho": "网易传媒",
      "content":
          "12月26日，2019第十届互联网牛耳人人盛典将在北京M空间隆重开幕。本届盛典以“创行智远”为主题，将在记录2019年中国互联网发展历程的同时，为过去一年中能代表互联网行业发展的伟大企业与优秀创业者献上桂冠。"
    },
    {
      "title": "2019第十届互联网牛耳人人盛典开幕在即",
      "autho": "网易传媒",
      "content":
          "12月26日，2019第十届互联网牛耳人人盛典将在北京M空间隆重开幕。本届盛典以“创行智远”为主题，将在记录2019年中国互联网发展历程的同时，为过去一年中能代表互联网行业发展的伟大企业与优秀创业者献上桂冠。"
    },
  ]
};
void main() async {
  var server = await HttpServer.bind(InternetAddress.anyIPv4, 80);
  await server.forEach((HttpRequest request) {
    handleMessage(request);
  });
}

void handleMessage(HttpRequest request) {
  try {
    if (request.method == 'GET') {
      handleGet(request);
    } else if (request.method == 'POST') {
      request.response.write('Hello, world!');
      request.response.close();
    }
  } catch (e) {
    print('出现了异常：$e');
  }
}

void handleGet(HttpRequest request) async {
  var action = request.uri.queryParameters["action"];
  if (action == 'getProducts') {
    print("获得产品数据");
    request.response
      ..statusCode = HttpStatus.ok
      ..write(json.encode(products))
      ..close();
    return;
  }
  if (action == "getNews") {
    print("获得新闻");
    request.response
      ..statusCode = HttpStatus.ok
      ..write(json.encode(news))
      ..close();
    return;
  }
  if (action == 'getMac') {
    var mac = await GetMacAddress().getMacAddress() ?? '未知';
    request.response
      ..statusCode = HttpStatus.ok
      ..write(json.encode({
        "code": 200,
        "message": "success",
        "data": {"mac": mac},
      }))
      ..close();
    return;
  }
}
